home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c20.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  58KB  |  2,565 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:CALL_INFIX_IMPLIES.static_value*/
  10. /*No:CALL_INFIX_IMPLIES.call_proc_call_c2c*/
  11. /*No:CALL_INFIX_IMPLIES.feature_name*/
  12.  
  13.  
  14. void r113finalize(T113* C){
  15. T0* _rf=NULL;
  16. T0* _rc=NULL;
  17. _rf=(C)->_run_feature/*16*/;
  18. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  19. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  20. }
  21.  
  22.  
  23. T6 r113is_static(T113* C){
  24. T6 R=0;
  25. /*[IF*/
  26. if(X54is_boolean(X56result_type((C)->_target/*4*/))){
  27. /*[IF*/
  28. if(X56is_static((C)->_target/*4*/)){
  29. /*[IF*/
  30. if((X56static_value((C)->_target/*4*/))==(0)){
  31. R=1;
  32. C->_static_value_mem=1;
  33. }
  34.  else if(X56is_static(r113arg1(C))){
  35. R=1;
  36. C->_static_value_mem=X56static_value(r113arg1(C));
  37. }
  38. /*FI]*/
  39. }
  40. /*FI]*/
  41. }
  42. /*FI]*/
  43. return R;
  44. }
  45. /*No:CALL_INFIX_IMPLIES.is_manifest_string*/
  46.  
  47.  
  48. T0* r113start_position(T113* C){
  49. T0* R=NULL;
  50. R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  51. return R;
  52. }
  53. /*No:CALL_INFIX_IMPLIES.c_simple*/
  54.  
  55.  
  56. T0* r113add_comment(T113* C,T0* a1){
  57. T0* R=NULL;
  58. /*[IF*/
  59. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  60. R=(T0*)C;
  61. }
  62. else{
  63. {T230*n=malloc(sizeof(*n));
  64. *n=M230;
  65. r230make(n,(T0*)C,a1);
  66. R=(T0*)n;
  67. }
  68. }
  69. /*FI]*/
  70. return R;
  71. }
  72.  
  73.  
  74. T2 r113to_integer(T113* C){
  75. T2 R=0;
  76. r113error(r113start_position(C),((T0*)ms13_45846));
  77. return R;
  78. }
  79.  
  80.  
  81. T6 r113use_current(T113* C){
  82. T6 R=0;
  83. /*[IF*/
  84. {/*AT*/R=X149use_current((C)->_arguments/*8*/);
  85. }
  86. /*FI]*/
  87. /*[IF*/
  88. if(R){
  89. }
  90.  else if(X56is_current((C)->_target/*4*/)){
  91. R=X51use_current((C)->_run_feature/*16*/);
  92. }
  93. else{
  94. R=X56use_current((C)->_target/*4*/);
  95. }
  96. /*FI]*/
  97. return R;
  98. }
  99.  
  100.  
  101. T0* r113to_runnable(T113* C,T0* a1){
  102. T0* R=NULL;
  103. T0* _rf=NULL;
  104. T0* _tbee=NULL;
  105. T0* _at=NULL;
  106. T0* _tt=NULL;
  107. T0* _a=NULL;
  108. T0* _t=NULL;
  109. _t=r113runnable_expression((C)->_target/*4*/,a1);
  110. _a=r113runnable_args((C)->_arguments/*8*/,a1);
  111. _tt=X56result_type(_t);
  112. _at=X56result_type(r113arg1(C));
  113. /*[IF*/
  114. /*AF*//*AE*/
  115. /*FI]*/
  116. _rf=r113run_feature_for(C,_t,a1);
  117. /*[IF*/
  118. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  119. C->_target=_t;
  120. C->_arguments=_a;
  121. C->_run_feature=_rf;
  122. r113run_feature_match(C,a1);
  123. R=(T0*)C;
  124. }
  125.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  126. R=(T0*)C;
  127. }
  128. else{
  129. {T113*n=malloc(sizeof(*n));
  130. *n=M113;
  131. r113with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  132. R=(T0*)n;
  133. }
  134. }
  135. /*FI]*/
  136. return R;
  137. }
  138.  
  139.  
  140. void r113compile_to_c_old(T113* C){
  141. X56compile_to_c_old((C)->_target/*4*/);
  142. /*[IF*/
  143. {/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
  144. }
  145. /*FI]*/
  146. }
  147. /*No:CALL_INFIX_IMPLIES.is_pre_computable*/
  148. /*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
  149.  
  150.  
  151. void r113collect_c_tmp(T113* C){
  152. /*[IF*/
  153. if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
  154. X51collect_c_tmp((C)->_run_feature/*16*/);
  155. }
  156. /*FI]*/
  157. X56collect_c_tmp((C)->_target/*4*/);
  158. /*[IF*/
  159. if(((C)->_arguments/*8*/)!=((void*)(NULL))){
  160. X149collect_c_tmp((C)->_arguments/*8*/);
  161. }
  162. /*FI]*/
  163. }
  164. /*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
  165.  
  166.  
  167. T0* r113result_type(T113* C){
  168. T0* R=NULL;
  169. T0* _tla=NULL;
  170. R=X51result_type((C)->_run_feature/*16*/);
  171. /*[IF*/
  172. if(X54is_like_current(R)){
  173. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  174. }
  175. else{
  176. _tla=R;
  177. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  178. case 258: 
  179. break;
  180. default:
  181. _tla=NULL;
  182. };/*[IF*/
  183. if((_tla)!=((void*)(NULL))){
  184. R=X54run_type(X56result_type(r113arg1(C)));
  185. }
  186. /*FI]*/
  187. }
  188. /*FI]*/
  189. return R;
  190. }
  191. /*No:CALL_INFIX_IMPLIES.static_value_mem*/
  192. /*No:CALL_INFIX_IMPLIES.run_feature*/
  193.  
  194.  
  195. T0* r113runnable_args(T0* a1,T0* a2){
  196. T0* R=NULL;
  197. R=X149to_runnable(a1,a2);
  198. /*[IF*/
  199. if((R)==((void*)(NULL))){
  200. r21add_position(X149start_position(a1));
  201. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  202. r21fatal_error((T21*)(oBC12eh),b1);
  203. }/*]*/
  204. }
  205. /*FI]*/
  206. return R;
  207. }
  208. /*No:CALL_INFIX_IMPLIES.fz_07*/
  209. /*No:CALL_INFIX_IMPLIES.arg_count*/
  210.  
  211.  
  212. void r113with(T113* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  213. C->_target=a1;
  214. C->_feature_name=a2;
  215. C->_arguments=a3;
  216. C->_run_feature=a4;
  217. r113run_feature_match(C,a5);
  218. }
  219. /*No:CALL_INFIX_IMPLIES.is_result*/
  220. /*No:CALL_INFIX_IMPLIES.fatal_error*/
  221.  
  222.  
  223. void r113mapping_c_target(T113* C,T0* a1){
  224. T0* _actual_type=NULL;
  225. T6 _flag=0;
  226. _flag=r25call_invariant_start(a1);
  227. _actual_type=X54run_type(r113result_type(C));
  228. /*[IF*/
  229. if(X54is_reference(_actual_type)){
  230. /*[IF*/
  231. if(X54is_reference(a1)){
  232. X54mapping_cast(a1);
  233. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  234. T3 b1='\50';
  235. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  236. }/*]*/
  237. /*]*/
  238. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  239. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  240. }/*]*/
  241. /*]*/
  242. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  243. T3 b1='\51';
  244. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  245. }/*]*/
  246. /*]*/
  247. }
  248. else{
  249. X54to_expanded(_actual_type);
  250. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  251. T3 b1='\50';
  252. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  253. }/*]*/
  254. /*]*/
  255. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  256. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  257. }/*]*/
  258. /*]*/
  259. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  260. T3 b1='\51';
  261. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  262. }/*]*/
  263. /*]*/
  264. }
  265. /*FI]*/
  266. }
  267. else{
  268. /*[IF*/
  269. if(X54is_reference(a1)){
  270. X54to_reference(_actual_type);
  271. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  272. T3 b1='\50';
  273. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  274. }/*]*/
  275. /*]*/
  276. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  277. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  278. }/*]*/
  279. /*]*/
  280. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  281. T3 b1='\51';
  282. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  283. }/*]*/
  284. /*]*/
  285. }
  286. else{
  287. /*[IF*/
  288. if(X54need_c_struct(a1)){
  289. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  290. T3 b1='\46';
  291. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  292. }/*]*/
  293. /*]*/
  294. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  295. T3 b1='\50';
  296. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  297. }/*]*/
  298. /*]*/
  299. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  300. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  301. }/*]*/
  302. /*]*/
  303. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  304. T3 b1='\51';
  305. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  306. }/*]*/
  307. /*]*/
  308. }
  309. else{
  310. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  311. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  312. }/*]*/
  313. /*]*/
  314. }
  315. /*FI]*/
  316. }
  317. /*FI]*/
  318. }
  319. /*FI]*/
  320. /*[IF*/
  321. if(_flag){
  322. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  323. T3 b1='\51';
  324. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  325. }/*]*/
  326. /*]*/
  327. }
  328. /*FI]*/
  329. }
  330.  
  331.  
  332. void r113run_feature_match(T113* C,T0* a1){
  333. r113run_feature_has_result(C);
  334. X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
  335. }
  336. /*No:CALL_INFIX_IMPLIES.arguments*/
  337.  
  338.  
  339. T0* r113runnable_expression(T0* a1,T0* a2){
  340. T0* R=NULL;
  341. R=X56to_runnable(a1,a2);
  342. /*[IF*/
  343. if((R)==((void*)(NULL))){
  344. r21add_position(X56start_position(a1));
  345. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  346. r21fatal_error((T21*)(oBC12eh),b1);
  347. }/*]*/
  348. }
  349. /*FI]*/
  350. return R;
  351. }
  352. /*No:CALL_INFIX_IMPLIES.can_be_dropped*/
  353.  
  354.  
  355. void r113c_declare_for_old(T113* C){
  356. X56c_declare_for_old((C)->_target/*4*/);
  357. /*[IF*/
  358. {/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
  359. }
  360. /*FI]*/
  361. }
  362. /*No:CALL_INFIX_IMPLIES.implicit_cast*/
  363. /*No:CALL_INFIX_IMPLIES.dca_inline_argument*/
  364. /*No:CALL_INFIX_IMPLIES.compile_to_c*/
  365. /*No:CALL_INFIX_IMPLIES.isa_dca_inline_argument*/
  366.  
  367.  
  368. T0* r113arg1(T113* C){
  369. T0* R=NULL;
  370. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
  371. return R;
  372. }
  373.  
  374.  
  375. void r113run_feature_has_result(T113* C){
  376. /*[IF*/
  377. if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  378. r21add_position(X51start_position((C)->_run_feature/*16*/));
  379. r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  380. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  381. r21fatal_error((T21*)(oBC12eh),b1);
  382. }/*]*/
  383. }
  384. /*FI]*/
  385. }
  386.  
  387.  
  388. T0* r113run_feature_for(T113* C,T0* a1,T0* a2){
  389. T0* R=NULL;
  390. T0* _rc=NULL;
  391. _rc=X54run_class(X56result_type(a1));
  392. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  393. return R;
  394. }
  395. /*No:CALL_INFIX_IMPLIES.target*/
  396.  
  397.  
  398. void r113error(T0* a1,T0* a2){
  399. r21add_position(a1);
  400. r21error((T21*)(oBC12eh),a2);
  401. }
  402.  
  403.  
  404. void r113make(T113* C,T0* a1,T0* a2,T0* a3){
  405. C->_target=a1;
  406. {T138*n=malloc(sizeof(*n));
  407. *n=M138;
  408. r138make(n,r113operator(),a2);
  409. C->_feature_name=(T0*)n;
  410. }
  411. {T149*n=malloc(sizeof(*n));
  412. *n=M149;
  413. /*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
  414. /*]*/
  415. C->_arguments=(T0*)n;
  416. }
  417. }
  418. /*No:CALL_INFIX_IMPLIES.is_current*/
  419. /*No:CALL_INFIX_IMPLIES.us_implies*/
  420.  
  421.  
  422. void r113mapping_c_arg(T113* C,T0* a1){
  423. T0* _actual_type=NULL;
  424. _actual_type=X54run_type(r113result_type(C));
  425. /*[IF*/
  426. if(X54is_reference(_actual_type)){
  427. /*[IF*/
  428. if(X54is_reference(a1)){
  429. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  430. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  431. }/*]*/
  432. /*]*/
  433. }
  434. else{
  435. X54to_expanded(_actual_type);
  436. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  437. T3 b1='\50';
  438. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  439. }/*]*/
  440. /*]*/
  441. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  442. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  443. }/*]*/
  444. /*]*/
  445. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  446. T3 b1='\51';
  447. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  448. }/*]*/
  449. /*]*/
  450. }
  451. /*FI]*/
  452. }
  453. else{
  454. /*[IF*/
  455. if(X54is_reference(a1)){
  456. X54to_reference(_actual_type);
  457. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  458. T3 b1='\50';
  459. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  460. }/*]*/
  461. /*]*/
  462. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  463. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  464. }/*]*/
  465. /*]*/
  466. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  467. T3 b1='\51';
  468. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  469. }/*]*/
  470. /*]*/
  471. }
  472. else{
  473. /*[IF*/
  474. if(X54need_c_struct(a1)){
  475. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  476. T3 b1='\46';
  477. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  478. }/*]*/
  479. /*]*/
  480. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  481. T3 b1='\50';
  482. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  483. }/*]*/
  484. /*]*/
  485. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  486. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  487. }/*]*/
  488. /*]*/
  489. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  490. T3 b1='\51';
  491. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  492. }/*]*/
  493. /*]*/
  494. }
  495. else{
  496. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T113* C1=C;
  497. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  498. }/*]*/
  499. /*]*/
  500. }
  501. /*FI]*/
  502. }
  503. /*FI]*/
  504. }
  505. /*FI]*/
  506. }
  507. /*No:CALL_INFIX_IMPLIES.is_void*/
  508.  
  509.  
  510. T0* r113operator(void){
  511. T0* R=NULL;
  512. R=((T0*)ms14_9513);
  513. return R;
  514. }
  515.  
  516.  
  517. void r113afd_check(T113* C){
  518. T0* _running=NULL;
  519. T0* _rc=NULL;
  520. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  521. _running=(((T24*)_rc))->_running/*12*/;
  522. /*[IF*/
  523. if((_running)==((void*)(NULL))){
  524. r21add_position(X56start_position((C)->_target/*4*/));
  525. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  526. r7append((T7*)(oBC21explanation),b1);
  527. }/*]*/
  528. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  529. r7append((T7*)(oBC21explanation),b1);
  530. }/*]*/
  531. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  532. r7append((T7*)(oBC21explanation),b1);
  533. }/*]*/
  534. r21print_as_warning((T21*)(oBC12eh));
  535. r24set_at_run_time(((T24*)_rc));
  536. }
  537.  else if((r328count(((T328*)_running)))>(1)){
  538. r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  539. }
  540. /*FI]*/
  541. X56afd_check((C)->_target/*4*/);
  542. /*[IF*/
  543. {/*AT*/X149afd_check((C)->_arguments/*8*/);
  544. }
  545. /*FI]*/
  546. }
  547.  
  548.  
  549. void r375c_assertion_flag(T375* C){
  550. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  551. /*]*/
  552. r375c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  553. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_30510));
  554. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  555. /*]*/
  556. }
  557.  
  558.  
  559. void r375c_define_opening(T375* C){
  560. T0* _t=NULL;
  561. /*[IF*/
  562. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  563. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_21736));
  564. /*]*/
  565. }
  566. /*FI]*/
  567. /*[IF*/
  568. /*AF*/if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  569. _t=X54run_type((C)->_result_type/*40*/);
  570. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  571. /*]*/
  572. X54c_type_for_result_in(_t,((T0*)ms51_3077376));
  573. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_543));
  574. X54c_initialize_in(_t,((T0*)ms51_3077376));
  575. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  576. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  577. /*]*/
  578. /*[IF*/
  579. if(r43no_check((T43*)(oBC12run_control))){
  580. r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms51_10703));
  581. r204increment((T204*)(oBC12c_frame_descriptor_local_count));
  582. r7append((T7*)(oBC12c_frame_descriptor_format),((T0*)ms14_7404));
  583. X54c_frame_descriptor(_t);
  584. }
  585. /*FI]*/
  586. }
  587. /*FI]*/
  588. /*[IF*/
  589. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  590. r178c_declare((T178*)((C)->_local_vars/*44*/));
  591. }
  592. /*FI]*/
  593. /*[IF*/
  594. if(r43ensure_check((T43*)(oBC12run_control))){
  595. /*[IF*/
  596. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  597. r215c_declare_for_old((T215*)((C)->_ensure_assertion/*24*/));
  598. }
  599. /*FI]*/
  600. }
  601. /*FI]*/
  602. /*[IF*/
  603. if(r43no_check((T43*)(oBC12run_control))){
  604. /*[IF*/
  605. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  606. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_21762));
  607. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  608. /*]*/
  609. r7extend((T7*)(((T0*)ms51_3077376)),'\135');
  610. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  611. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  612. /*]*/
  613. }
  614. /*FI]*/
  615. r375c_initialize_ds_one_by_one(C);
  616. /*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
  617. T2 _j=0;
  618. T2 _i=0;
  619. _j=1;
  620. while (!((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)==(_i))) {
  621. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_8225));
  622. /*]*/
  623. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_i);
  624. /*]*/
  625. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_314));
  626. /*]*/
  627. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  628. while (!((_c)==('\54'))) {
  629. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  630. T3 b1=_c;
  631. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  632. }/*]*/
  633. /*]*/
  634. _j=(_j)+(1);
  635. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  636. }
  637. _j=(_j)+(1);
  638. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  639. /*]*/
  640. _i=(_i)+(1);
  641. }
  642. }/*]*/
  643. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820a));
  644. /*]*/
  645. }
  646. /*FI]*/
  647. /*[IF*/
  648. if(r43ensure_check((T43*)(oBC12run_control))){
  649. /*[IF*/
  650. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  651. r215compile_to_c_old((T215*)((C)->_ensure_assertion/*24*/));
  652. }
  653. /*FI]*/
  654. }
  655. /*FI]*/
  656. /*[IF*/
  657. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  658. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_23488));
  659. /*]*/
  660. /*[IF*/
  661. if(r43no_check((T43*)(oBC12run_control))){
  662. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_147634));
  663. /*]*/
  664. }
  665. /*FI]*/
  666. r216compile_to_c((T216*)((C)->_rescue_compound/*52*/));
  667. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_48457));
  668. /*]*/
  669. }
  670. /*FI]*/
  671. /*[IF*/
  672. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  673. r178initialize_expanded((T178*)((C)->_local_vars/*44*/));
  674. }
  675. /*FI]*/
  676. /*[IF*/
  677. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  678. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_7601));
  679. /*]*/
  680. }
  681. /*FI]*/
  682. /*[IF*/
  683. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  684. r357compile_to_c((T357*)((C)->_require_assertion/*20*/));
  685. }
  686. /*FI]*/
  687. /*[IF*/
  688. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  689. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_58520));
  690. /*]*/
  691. /*[IF*/
  692. if(r43no_check((T43*)(oBC12run_control))){
  693. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820));
  694. /*]*/
  695. }
  696. /*FI]*/
  697. }
  698. /*FI]*/
  699. }
  700.  
  701.  
  702. void r375c_define_closing(T375* C){
  703. /*[IF*/
  704. if(r43ensure_check((T43*)(oBC12run_control))){
  705. /*[IF*/
  706. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  707. r215compile_to_c((T215*)((C)->_ensure_assertion/*24*/));
  708. }
  709. /*FI]*/
  710. }
  711. /*FI]*/
  712. /*[IF*/
  713. if(r375use_current(C)){
  714. r25current_class_invariant((C)->_current_type/*4*/);
  715. }
  716. /*FI]*/
  717. /*[IF*/
  718. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  719. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_25830));
  720. /*]*/
  721. }
  722. /*FI]*/
  723. /*[IF*/
  724. if(r43no_check((T43*)(oBC12run_control))){
  725. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_19775));
  726. /*]*/
  727. }
  728. /*FI]*/
  729. }
  730. /*No:RUN_FEATURE_11.use_current_state*/
  731. /*No:RUN_FEATURE_11.fz_void*/
  732. /*No:RUN_FEATURE_11.address_of_c_define*/
  733. /*No:RUN_FEATURE_11.ucs_false*/
  734. /*No:RUN_FEATURE_11.is_static*/
  735.  
  736.  
  737. T0* r375start_position(T375* C){
  738. T0* R=NULL;
  739. R=r303start_position((T303*)((C)->_base_feature/*32*/));
  740. return R;
  741. }
  742. /*No:RUN_FEATURE_11.c_initialize_locals_one_by_one*/
  743.  
  744.  
  745. void r375mapping_name(T375* C){
  746. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  747. T3 b1='r';
  748. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  749. }/*]*/
  750. /*]*/
  751. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r375id(C));
  752. /*]*/
  753. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_key((C)->_name/*16*/));
  754. /*]*/
  755. }
  756.  
  757.  
  758. T6 r375use_current(T375* C){
  759. T6 R=0;
  760. {int z1=(C)->_use_current_state/*28*/;
  761.  
  762. if((14==z1)){
  763. R=1;
  764. }
  765.  else 
  766. if((13==z1)){
  767. }
  768.  else 
  769. if((15==z1)){
  770. C->_use_current_state=16;
  771. /*[IRF3.4compute_use_current*/r375std_compute_use_current(C);
  772. /*]*/
  773. R=r375use_current(C);
  774. }
  775.  else {R=1;
  776. }}
  777. return R;
  778. }
  779.  
  780.  
  781. T2 r375id(T375* C){
  782. T2 R=0;
  783. R=X54id((C)->_current_type/*4*/);
  784. return R;
  785. }
  786.  
  787.  
  788. void r375routine_afd_check(T375* C){
  789. /*[IF*/
  790. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  791. r357afd_check((T357*)((C)->_require_assertion/*20*/));
  792. }
  793. /*FI]*/
  794. /*[IF*/
  795. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  796. r216afd_check((T216*)((C)->_routine_body/*48*/));
  797. }
  798. /*FI]*/
  799. /*[IF*/
  800. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  801. r216afd_check((T216*)((C)->_rescue_compound/*52*/));
  802. }
  803. /*FI]*/
  804. /*[IF*/
  805. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  806. r215afd_check((T215*)((C)->_ensure_assertion/*24*/));
  807. }
  808. /*FI]*/
  809. }
  810.  
  811.  
  812. void r375std_compute_use_current(T375* C){
  813. /*[IF*/
  814. if(((C)->_use_current_state/*28*/)==(16)){
  815. /*[IF*/
  816. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  817. /*[IF*/
  818. if(r357use_current((T357*)((C)->_require_assertion/*20*/))){
  819. C->_use_current_state=14;
  820. }
  821. /*FI]*/
  822. }
  823. /*FI]*/
  824. }
  825. /*FI]*/
  826. /*[IF*/
  827. if(((C)->_use_current_state/*28*/)==(16)){
  828. /*[IF*/
  829. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  830. /*[IF*/
  831. if(r216use_current((T216*)((C)->_routine_body/*48*/))){
  832. C->_use_current_state=14;
  833. }
  834. /*FI]*/
  835. }
  836. /*FI]*/
  837. }
  838. /*FI]*/
  839. /*[IF*/
  840. if(((C)->_use_current_state/*28*/)==(16)){
  841. /*[IF*/
  842. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  843. /*[IF*/
  844. if(r216use_current((T216*)((C)->_rescue_compound/*52*/))){
  845. C->_use_current_state=14;
  846. }
  847. /*FI]*/
  848. }
  849. /*FI]*/
  850. }
  851. /*FI]*/
  852. /*[IF*/
  853. if(((C)->_use_current_state/*28*/)==(16)){
  854. /*[IF*/
  855. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  856. /*[IF*/
  857. if(r215use_current((T215*)((C)->_ensure_assertion/*24*/))){
  858. C->_use_current_state=14;
  859. }
  860. /*FI]*/
  861. }
  862. /*FI]*/
  863. }
  864. /*FI]*/
  865. /*[IF*/
  866. if(((C)->_use_current_state/*28*/)==(16)){
  867. C->_use_current_state=13;
  868. }
  869. /*FI]*/
  870. }
  871.  
  872.  
  873. T0* r375run_class(T375* C){
  874. T0* R=NULL;
  875. R=X54run_class((C)->_current_type/*4*/);
  876. return R;
  877. }
  878. /*No:RUN_FEATURE_11.result_type*/
  879. /*No:RUN_FEATURE_11.base_feature*/
  880. /*No:RUN_FEATURE_11.ensure_assertion*/
  881. /*No:RUN_FEATURE_11.static_value_mem*/
  882.  
  883.  
  884. T6 r375is_exported_in(T375* C,T0* a1){
  885. T6 R=0;
  886. R=r101gives_permission_to((T101*)(r375clients(C)),a1);
  887. return R;
  888. }
  889.  
  890.  
  891. void r375default_mapping_function(T375* C){
  892. T6 _tcbd=0;
  893. T6 _uc=0;
  894. T6 _no_check=0;
  895. _no_check=r43no_check((T43*)(oBC12run_control));
  896. _uc=r375use_current(C);
  897. /*[IF*/
  898. if(!(_uc)){
  899. _tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
  900. /*[IF*/
  901. if(_tcbd){
  902. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  903. T3 b1='\54';
  904. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  905. }/*]*/
  906. /*]*/
  907. }
  908. /*FI]*/
  909. }
  910. /*FI]*/
  911. r375mapping_name(C);
  912. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  913. T3 b1='\50';
  914. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  915. }/*]*/
  916. /*]*/
  917. /*[IF*/
  918. if(_no_check){
  919. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_777));
  920. /*]*/
  921. }
  922. /*FI]*/
  923. /*[IF*/
  924. if(_uc){
  925. /*[IF*/
  926. if(_no_check){
  927. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  928. T3 b1='\54';
  929. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  930. }/*]*/
  931. /*]*/
  932. }
  933. /*FI]*/
  934. r25put_target_as_target((T25*)(oBC12cpp));
  935. }
  936. /*FI]*/
  937. /*[IF*/
  938. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  939. /*[IF*/
  940. if((_uc)||(_no_check)){
  941. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  942. T3 b1='\54';
  943. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  944. }/*]*/
  945. /*]*/
  946. }
  947. /*FI]*/
  948. r25put_arguments((T25*)(oBC12cpp));
  949. }
  950. /*FI]*/
  951. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  952. T3 b1='\51';
  953. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  954. }/*]*/
  955. /*]*/
  956. /*[IF*/
  957. if((!(_uc))&&(_tcbd)){
  958. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  959. T3 b1='\51';
  960. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  961. }/*]*/
  962. /*]*/
  963. }
  964. /*FI]*/
  965. }
  966. /*No:RUN_FEATURE_11.arguments*/
  967. /*No:RUN_FEATURE_11.is_once_function*/
  968. /*No:RUN_FEATURE_11.current_type*/
  969. /*No:RUN_FEATURE_11.clients_memory*/
  970.  
  971.  
  972. void r375add_client(T375* C,T0* a1){
  973. T2 _i=0;
  974. /*[IF*/
  975. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  976. {T60*n=malloc(sizeof(*n));
  977. *n=M60;
  978. r60with_capacity(n,4);
  979. C->_actuals_clients=(T0*)n;
  980. }
  981. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  982. }
  983. else{
  984. _i=r60fast_index_of((T60*)((C)->_actuals_clients/*12*/),a1);
  985. /*[IF*/
  986. if((_i)>(((T60*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  987. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  988. }
  989. /*FI]*/
  990. }
  991. /*FI]*/
  992. r24add_client((T24*)(r375run_class(C)),a1);
  993. }
  994. /*No:RUN_FEATURE_11.ucs_in_computation*/
  995.  
  996.  
  997. void r375make(T375* C,T0* a1,T0* a2,T0* a3){
  998. C->_current_type=a1;
  999. C->_name=a2;
  1000. C->_base_feature=a3;
  1001. /*[IRF3.5add_rf*/r325put(((T325*)(((T24*)(r375run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X83to_key(a2));
  1002. /*]*/
  1003. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1004. C->_use_current_state=15;
  1005. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1006. r375initialize(C);
  1007. r22pop((T22*)(oBC12small_eiffel));
  1008. }
  1009. /*No:RUN_FEATURE_11.routine_body*/
  1010. /*No:RUN_FEATURE_11.ucs_true*/
  1011. /*No:RUN_FEATURE_11.name*/
  1012. /*No:RUN_FEATURE_11.afd_check*/
  1013.  
  1014.  
  1015. T0* r375clients(T375* C){
  1016. T0* R=NULL;
  1017. T0* _bfbc=NULL;
  1018. T0* _bc=NULL;
  1019. /*[IF*/
  1020. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1021. _bc=X54base_class((C)->_current_type/*4*/);
  1022. _bfbc=((T303*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  1023. /*[IF*/
  1024. if((_bc)==((void*)(_bfbc))){
  1025. R=((T303*)((C)->_base_feature/*32*/))->_clients/*20*/;
  1026. }
  1027. else{
  1028. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1029. }
  1030. /*FI]*/
  1031. C->_clients_memory=R;
  1032. }
  1033. else{
  1034. R=(C)->_clients_memory/*8*/;
  1035. }
  1036. /*FI]*/
  1037. return R;
  1038. }
  1039.  
  1040.  
  1041. void r375c_define(T375* C){
  1042. /*[IF*/
  1043. if(r375use_current(C)){
  1044. r25incr_function_count((T25*)(oBC12cpp));
  1045. }
  1046. else{
  1047. r25incr_real_function_count((T25*)(oBC12cpp));
  1048. }
  1049. /*FI]*/
  1050. r375define_prototype(C);
  1051. r375c_define_opening(C);
  1052. /*[IF*/
  1053. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1054. r216compile_to_c((T216*)((C)->_routine_body/*48*/));
  1055. }
  1056. /*FI]*/
  1057. r375c_define_closing(C);
  1058. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
  1059. /*]*/
  1060. r375c_frame_descriptor(C);
  1061. }
  1062.  
  1063.  
  1064. void r375once_result_in(T375* C,T0* a1){
  1065. r7extend(((T7*)a1),'o');
  1066. r303mapping_c_name_in((T303*)((C)->_base_feature/*32*/),a1);
  1067. }
  1068. /*No:RUN_FEATURE_11.rescue_compound*/
  1069.  
  1070.  
  1071. void r375fall_down(T375* C){
  1072. T0* _rf=NULL;
  1073. T0* _sub_name=NULL;
  1074. T0* _sub_bc=NULL;
  1075. T0* _current_bc=NULL;
  1076. T0* _sub_rc=NULL;
  1077. T0* _current_rc=NULL;
  1078. T2 _i=0;
  1079. T0* _running=NULL;
  1080. _current_rc=X54run_class((C)->_current_type/*4*/);
  1081. _running=(((T24*)_current_rc))->_running/*12*/;
  1082. /*[IF*/
  1083. if((_running)!=((void*)(NULL))){
  1084. _current_bc=X54base_class((C)->_current_type/*4*/);
  1085. _i=(((T328*)_running))->_lower/*12*/;
  1086. while (!((_i)>((((T328*)_running))->_upper/*8*/))) {
  1087. _sub_rc=r328item(((T328*)_running),_i);
  1088. /*[IF*/
  1089. if((_sub_rc)!=((void*)(_current_rc))){
  1090. _sub_bc=X54base_class((((T24*)_sub_rc))->_current_type/*0*/);
  1091. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1092. _rf=r24get_feature(((T24*)_sub_rc),_sub_name);
  1093. }
  1094. /*FI]*/
  1095. _i=(_i)+(1);
  1096. }
  1097. }
  1098. /*FI]*/
  1099. }
  1100. /*No:RUN_FEATURE_11.actuals_clients*/
  1101. /*No:RUN_FEATURE_11.us_result*/
  1102.  
  1103.  
  1104. void r375define_prototype(T375* C){
  1105. T6 _no_check=0;
  1106. T2 _mem_id=0;
  1107. _no_check=r43no_check((T43*)(oBC12run_control));
  1108. /*[IF*/
  1109. if(r43no_check((T43*)(oBC12run_control))){
  1110. /*[IRF3.3reset*/((((T204*)((T204*)(oBC12c_frame_descriptor_local_count))))->_value)=(0);
  1111. /*]*/
  1112. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_format))))->_count)=(0);
  1113. /*]*/
  1114. r7extend((T7*)(oBC12c_frame_descriptor_format),'\42');
  1115. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_locals))))->_count)=(0);
  1116. /*]*/
  1117. }
  1118. /*FI]*/
  1119. _mem_id=r375id(C);
  1120. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1121. /*]*/
  1122. /*[IF*/
  1123. if(((C)->_result_type/*40*/)==((void*)(NULL))){
  1124. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1125. }
  1126. else{
  1127. X54c_type_for_result_in(X54run_type((C)->_result_type/*40*/),((T0*)ms51_3077376));
  1128. }
  1129. /*FI]*/
  1130. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1131. r7extend((T7*)(((T0*)ms51_3077376)),'r');
  1132. r2append_in(_mem_id,((T0*)ms51_3077376));
  1133. X83mapping_c_in((C)->_name/*16*/,((T0*)ms51_3077376));
  1134. r7extend((T7*)(((T0*)ms51_3077376)),'\50');
  1135. /*[IF*/
  1136. if(_no_check){
  1137. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_56460));
  1138. /*[IF*/
  1139. if((r375use_current(C))||(((C)->_arguments/*36*/)!=((void*)(NULL)))){
  1140. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1141. }
  1142. /*FI]*/
  1143. }
  1144. /*FI]*/
  1145. /*[IF*/
  1146. if(r375use_current(C)){
  1147. X54c_type_for_target_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
  1148. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1149. r7extend((T7*)(((T0*)ms51_3077376)),'C');
  1150. X54c_frame_descriptor((C)->_current_type/*4*/);
  1151. /*[IF*/
  1152. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1153. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1154. }
  1155. /*FI]*/
  1156. }
  1157. /*FI]*/
  1158. /*[IF*/
  1159. if(((C)->_arguments/*36*/)==((void*)(NULL))){
  1160. /*[IF*/
  1161. if(_no_check){
  1162. }
  1163.  else if(!(r375use_current(C))){
  1164. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1165. }
  1166. /*FI]*/
  1167. }
  1168. else{
  1169. r187compile_to_c_in((T187*)((C)->_arguments/*36*/),((T0*)ms51_3077376));
  1170. }
  1171. /*FI]*/
  1172. r7extend((T7*)(((T0*)ms51_3077376)),'\51');
  1173. r25put_c_heading((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1174. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  1175. /*]*/
  1176. }
  1177.  
  1178.  
  1179. void r375put_tag(T375* C){
  1180. T0* _fn=NULL;
  1181. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1182. T3 b1='\42';
  1183. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1184. }/*]*/
  1185. /*]*/
  1186. _fn=/*(IRF4.6first_name*/r85item(((T85*)(((T303*)((C)->_base_feature/*32*/))->_names/*8*/)),1)/*)*/;
  1187. X83put_cpp_tag(_fn);
  1188. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string(_fn));
  1189. /*]*/
  1190. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_1148));
  1191. /*]*/
  1192. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T64*)(/*(IRF4.6base_class_name*/(((T63*)(((T303*)((C)->_base_feature/*32*/))->_base_class/*4*/)))->_name/*24*//*)*/))->_to_string/*0*/);
  1193. /*]*/
  1194. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1195. T3 b1='\42';
  1196. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1197. }/*]*/
  1198. /*]*/
  1199. }
  1200. /*No:RUN_FEATURE_11.c_code*/
  1201. /*No:RUN_FEATURE_11.fz_00*/
  1202.  
  1203.  
  1204. void r375c_initialize_ds_one_by_one(T375* C){
  1205. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_37325));
  1206. r375c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1207. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  1208. /*[IF*/
  1209. if(r375use_current(C)){
  1210. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_18550));
  1211. }
  1212. else{
  1213. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_11254));
  1214. }
  1215. /*FI]*/
  1216. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1217. /*]*/
  1218. r25put_position_in_ds(r375start_position(C));
  1219. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_11736));
  1220. /*]*/
  1221. /*[IF*/
  1222. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  1223. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_12150));
  1224. /*]*/
  1225. }
  1226. /*FI]*/
  1227. }
  1228. /*No:RUN_FEATURE_11.ucs_not_computed*/
  1229. /*No:RUN_FEATURE_11.is_pre_computable*/
  1230.  
  1231.  
  1232. void r375collect_c_tmp(T375* C){
  1233. /*[IF*/
  1234. if(X54is_user_expanded((C)->_result_type/*40*/)){
  1235. /*[IF*/
  1236. if(X54is_dummy_expanded((C)->_result_type/*40*/)){
  1237. }
  1238. else{
  1239. r25se_tmp_add((T0*)C);
  1240. }
  1241. /*FI]*/
  1242. }
  1243. /*FI]*/
  1244. }
  1245.  
  1246.  
  1247. void r375c_frame_descriptor(T375* C){
  1248. /*[IF*/
  1249. if(r43no_check((T43*)(oBC12run_control))){
  1250. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_23640));
  1251. r375c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1252. r25put_extern7((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1253. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1254. T3 b1='\173';
  1255. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1256. }/*]*/
  1257. /*]*/
  1258. r375put_tag(C);
  1259. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1260. /*]*/
  1261. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1262. /*[IF*/
  1263. if(r375use_current(C)){
  1264. r7extend((T7*)(((T0*)ms51_3077376)),'1');
  1265. }
  1266. else{
  1267. r7extend((T7*)(((T0*)ms51_3077376)),'0');
  1268. }
  1269. /*FI]*/
  1270. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1271. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  1272. /*]*/
  1273. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1274. r7append((T7*)(((T0*)ms51_3077376)),oBC12c_frame_descriptor_format);
  1275. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_2316));
  1276. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1277. /*]*/
  1278. }
  1279. /*FI]*/
  1280. }
  1281. /*No:RUN_FEATURE_11.fz_15*/
  1282.  
  1283.  
  1284. T2 r375arg_count(T375* C){
  1285. T2 R=0;
  1286. /*[IF*/
  1287. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1288. R=/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1289. }
  1290. /*FI]*/
  1291. return R;
  1292. }
  1293. /*No:RUN_FEATURE_11.address_of_c_mapping*/
  1294.  
  1295.  
  1296. void r375mapping_c(T375* C){
  1297. T2 _tmp_expanded_idx=0;
  1298. _tmp_expanded_idx=r25se_tmp_open((T0*)C);
  1299. r375default_mapping_function(C);
  1300. /*[IF*/
  1301. if((_tmp_expanded_idx)>=(0)){
  1302. r25se_tmp_close(_tmp_expanded_idx);
  1303. }
  1304. /*FI]*/
  1305. }
  1306.  
  1307.  
  1308. void r375initialize(T375* C){
  1309. C->_arguments=((T303*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  1310. /*[IF*/
  1311. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1312. /*[IF*/
  1313. if(!(r187is_runnable((T187*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1314. {T187*n=malloc(sizeof(*n));
  1315. *n=M187;
  1316. r187with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1317. C->_arguments=(T0*)n;
  1318. }
  1319. }
  1320. /*FI]*/
  1321. }
  1322. /*FI]*/
  1323. C->_result_type=X54to_runnable(((T303*)((C)->_base_feature/*32*/))->_result_type/*56*/,(C)->_current_type/*4*/);
  1324. C->_local_vars=((T303*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  1325. /*[IF*/
  1326. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1327. C->_local_vars=r178to_runnable((T178*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  1328. }
  1329. /*FI]*/
  1330. C->_routine_body=((T303*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  1331. /*[IF*/
  1332. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1333. C->_routine_body=r216to_runnable((T216*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  1334. }
  1335. /*FI]*/
  1336. /*[IF*/
  1337. if(r43require_check((T43*)(oBC12run_control))){
  1338. C->_require_assertion=r303run_require((T0*)C);
  1339. }
  1340. /*FI]*/
  1341. /*[IF*/
  1342. if(r43ensure_check((T43*)(oBC12run_control))){
  1343. C->_ensure_assertion=r303run_ensure((T0*)C);
  1344. }
  1345. /*FI]*/
  1346. C->_rescue_compound=((T303*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  1347. /*[IF*/
  1348. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  1349. /*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
  1350. /*]*/
  1351. C->_rescue_compound=r216to_runnable((T216*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  1352. }
  1353. /*FI]*/
  1354. }
  1355. /*No:RUN_FEATURE_11.can_be_dropped*/
  1356. /*No:RUN_FEATURE_11.require_assertion*/
  1357. /*No:RUN_FEATURE_11.compute_use_current*/
  1358. /*No:RUN_FEATURE_11.local_vars*/
  1359.  
  1360.  
  1361. void r375c_frame_descriptor_name_in(T375* C,T0* a1){
  1362. r7extend(((T7*)a1),'f');
  1363. r2append_in(r375id(C),a1);
  1364. X83mapping_c_in((C)->_name/*16*/,a1);
  1365. }
  1366. /*No:PROC_CALL_N.call_proc_call_c2c*/
  1367. /*No:PROC_CALL_N.feature_name*/
  1368.  
  1369.  
  1370. void r165run_feature_match(T165* C,T0* a1){
  1371. r165run_feature_has_no_result(C);
  1372. X149match_with((C)->_arguments/*16*/,(C)->_run_feature/*12*/,a1);
  1373. }
  1374. /*No:PROC_CALL_N.arguments*/
  1375.  
  1376.  
  1377. T0* r165runnable_expression(T0* a1,T0* a2){
  1378. T0* R=NULL;
  1379. R=X56to_runnable(a1,a2);
  1380. /*[IF*/
  1381. if((R)==((void*)(NULL))){
  1382. r21add_position(X56start_position(a1));
  1383. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  1384. r21fatal_error((T21*)(oBC12eh),b1);
  1385. }/*]*/
  1386. }
  1387. /*FI]*/
  1388. return R;
  1389. }
  1390.  
  1391.  
  1392. void r165finalize(T165* C){
  1393. T0* _rf=NULL;
  1394. T0* _rc=NULL;
  1395. _rf=(C)->_run_feature/*12*/;
  1396. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  1397. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  1398. }
  1399.  
  1400.  
  1401. T0* r165start_position(T165* C){
  1402. T0* R=NULL;
  1403. R=X83start_position((C)->_feature_name/*8*/);
  1404. return R;
  1405. }
  1406.  
  1407.  
  1408. T0* r165add_comment(T165* C,T0* a1){
  1409. T0* R=NULL;
  1410. /*[IF*/
  1411. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  1412. R=(T0*)C;
  1413. }
  1414. /*AF*/else{
  1415. {T225*n=malloc(sizeof(*n));
  1416. *n=M225;
  1417. r225make(n,(T0*)C,a1);
  1418. R=(T0*)n;
  1419. }
  1420. }
  1421. /*FI]*/
  1422. return R;
  1423. }
  1424.  
  1425.  
  1426. void r165run_feature_has_no_result(T165* C){
  1427. /*[IF*/
  1428. if((X51result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
  1429. r21add_position(X51start_position((C)->_run_feature/*12*/));
  1430. r21add_position(X83start_position((C)->_feature_name/*8*/));
  1431. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms162_67122);
  1432. r21fatal_error((T21*)(oBC12eh),b1);
  1433. }/*]*/
  1434. }
  1435. /*FI]*/
  1436. }
  1437.  
  1438.  
  1439. T6 r165use_current(T165* C){
  1440. T6 R=0;
  1441. /*[IF*/
  1442. if((r165arg_count(C))>(0)){
  1443. R=X149use_current((C)->_arguments/*16*/);
  1444. }
  1445. /*FI]*/
  1446. /*[IF*/
  1447. if(R){
  1448. }
  1449.  else if(X56is_current((C)->_target/*4*/)){
  1450. R=X51use_current((C)->_run_feature/*12*/);
  1451. }
  1452. else{
  1453. R=X56use_current((C)->_target/*4*/);
  1454. }
  1455. /*FI]*/
  1456. return R;
  1457. }
  1458.  
  1459.  
  1460. void r165compile_to_c(T165* C){
  1461. r25se_trace_ins((T25*)(oBC12cpp),r165start_position(C));
  1462. /*[IRF3.6call_proc_call_c2c*/{T165* C1=C;
  1463. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  1464. }/*]*/
  1465. }
  1466.  
  1467.  
  1468. T0* r165to_runnable(T165* C,T0* a1){
  1469. T0* R=NULL;
  1470. T0* _rf=NULL;
  1471. T0* _a=NULL;
  1472. T0* _t=NULL;
  1473. _t=r165runnable_expression((C)->_target/*4*/,a1);
  1474. _a=r165runnable_args((C)->_arguments/*16*/,a1);
  1475. _rf=r165run_feature_for(C,_t,a1);
  1476. /*[IF*/
  1477. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1478. C->_target=_t;
  1479. C->_arguments=_a;
  1480. C->_run_feature=_rf;
  1481. r165run_feature_match(C,a1);
  1482. R=(T0*)C;
  1483. }
  1484.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
  1485. R=(T0*)C;
  1486. }
  1487. else{
  1488. {T165*n=malloc(sizeof(*n));
  1489. *n=M165;
  1490. r165with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  1491. R=(T0*)n;
  1492. }
  1493. }
  1494. /*FI]*/
  1495. return R;
  1496. }
  1497. /*No:PROC_CALL_N.is_pre_computable*/
  1498. /*No:PROC_CALL_N.fz_bad_argument*/
  1499.  
  1500.  
  1501. void r165collect_c_tmp(T165* C){
  1502. /*[IF*/
  1503. if(((C)->_run_feature/*12*/)!=((void*)(NULL))){
  1504. X51collect_c_tmp((C)->_run_feature/*12*/);
  1505. }
  1506. /*FI]*/
  1507. X56collect_c_tmp((C)->_target/*4*/);
  1508. /*[IF*/
  1509. if(((C)->_arguments/*16*/)!=((void*)(NULL))){
  1510. X149collect_c_tmp((C)->_arguments/*16*/);
  1511. }
  1512. /*FI]*/
  1513. }
  1514. /*No:PROC_CALL_N.set_run_feature*/
  1515.  
  1516.  
  1517. T0* r165run_feature_for(T165* C,T0* a1,T0* a2){
  1518. T0* R=NULL;
  1519. T0* _rc=NULL;
  1520. _rc=X54run_class(X56result_type(a1));
  1521. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*8*/,a2);
  1522. return R;
  1523. }
  1524. /*No:PROC_CALL_N.target*/
  1525. /*No:PROC_CALL_N.run_feature*/
  1526. /*No:PROC_CALL_N.end_mark_comment*/
  1527.  
  1528.  
  1529. void r165make(T165* C,T0* a1,T0* a2,T0* a3){
  1530. C->_target=a1;
  1531. C->_feature_name=a2;
  1532. C->_arguments=a3;
  1533. }
  1534.  
  1535.  
  1536. T0* r165runnable_args(T0* a1,T0* a2){
  1537. T0* R=NULL;
  1538. R=X149to_runnable(a1,a2);
  1539. /*[IF*/
  1540. if((R)==((void*)(NULL))){
  1541. r21add_position(X149start_position(a1));
  1542. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1543. r21fatal_error((T21*)(oBC12eh),b1);
  1544. }/*]*/
  1545. }
  1546. /*FI]*/
  1547. return R;
  1548. }
  1549. /*No:PROC_CALL_N.fz_07*/
  1550.  
  1551.  
  1552. T0* r165make_runnable(T165* C,T0* a1,T0* a2,T0* a3){
  1553. T0* R=NULL;
  1554. /*[IF*/
  1555. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  1556. C->_target=a1;
  1557. C->_arguments=a2;
  1558. C->_run_feature=a3;
  1559. R=(T0*)C;
  1560. }
  1561. else{
  1562. {T165*n=malloc(sizeof(*n));
  1563. *n=M165;
  1564. r165make(n,a1,(C)->_feature_name/*8*/,a2);
  1565. R=(T0*)n;
  1566. }
  1567. /*[IRF3.3set_run_feature*/((((T165*)(((T165*)R))))->_run_feature)=(a3);
  1568. /*]*/
  1569. }
  1570. /*FI]*/
  1571. return R;
  1572. }
  1573.  
  1574.  
  1575. void r165afd_check(T165* C){
  1576. T0* _running=NULL;
  1577. T0* _rc=NULL;
  1578. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  1579. _running=(((T24*)_rc))->_running/*12*/;
  1580. /*[IF*/
  1581. if((_running)==((void*)(NULL))){
  1582. r21add_position(X56start_position((C)->_target/*4*/));
  1583. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  1584. r7append((T7*)(oBC21explanation),b1);
  1585. }/*]*/
  1586. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  1587. r7append((T7*)(oBC21explanation),b1);
  1588. }/*]*/
  1589. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1590. r7append((T7*)(oBC21explanation),b1);
  1591. }/*]*/
  1592. r21print_as_warning((T21*)(oBC12eh));
  1593. r24set_at_run_time(((T24*)_rc));
  1594. }
  1595.  else if((r328count(((T328*)_running)))>(1)){
  1596. r331update((C)->_target/*4*/,(C)->_run_feature/*12*/);
  1597. }
  1598. /*FI]*/
  1599. X56afd_check((C)->_target/*4*/);
  1600. /*[IF*/
  1601. if((r165arg_count(C))>(0)){
  1602. X149afd_check((C)->_arguments/*16*/);
  1603. }
  1604. /*FI]*/
  1605. }
  1606.  
  1607.  
  1608. T2 r165arg_count(T165* C){
  1609. T2 R=0;
  1610. R=X149count((C)->_arguments/*16*/);
  1611. return R;
  1612. }
  1613.  
  1614.  
  1615. void r165with(T165* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1616. C->_target=a1;
  1617. C->_feature_name=a2;
  1618. C->_arguments=a3;
  1619. C->_run_feature=a4;
  1620. r165run_feature_match(C,a5);
  1621. }
  1622. /*No:PROC_CALL_N.fatal_error*/
  1623. /*No:TYPE_EXPANDED.fz_void*/
  1624. /*No:TYPE_EXPANDED.start_position*/
  1625.  
  1626.  
  1627. void r275standard_c_print_function(T275* C){
  1628. /*[IF*/
  1629. if(r43no_check((T43*)(oBC12run_control))){
  1630. r24c_print_function((T24*)(r275run_class(C)));
  1631. }
  1632. /*FI]*/
  1633. }
  1634.  
  1635.  
  1636. void r275used_as_reference(T275* C){
  1637. /*[IF*/
  1638. if(X54is_expanded((C)->_mapped/*12*/)){
  1639. r24used_as_reference((T24*)(r275run_class(C)));
  1640. }
  1641. /*FI]*/
  1642. }
  1643.  
  1644.  
  1645. T2 r275id(T275* C){
  1646. T2 R=0;
  1647. R=((T24*)(r275run_class(C)))->_id/*4*/;
  1648. return R;
  1649. }
  1650.  
  1651.  
  1652. T6 r275is_user_expanded(T275* C){
  1653. T6 R=0;
  1654. /*[IF*/
  1655. if(X54is_basic_eiffel_expanded((C)->_mapped/*12*/)){
  1656. }
  1657. else{
  1658. R=1;
  1659. }
  1660. /*FI]*/
  1661. return R;
  1662. }
  1663.  
  1664.  
  1665. T6 r275is_pointer(T275* C){
  1666. T6 R=0;
  1667. R=X54is_pointer((C)->_mapped/*12*/);
  1668. return R;
  1669. }
  1670.  
  1671.  
  1672. T0* r275to_runnable(T275* C,T0* a1){
  1673. T0* R=NULL;
  1674. T0* _m=NULL;
  1675. /*[IF*/
  1676. if(((C)->_run_type/*20*/)==((void*)(C))){
  1677. R=(T0*)C;
  1678. }
  1679.  else if(((C)->_run_type/*20*/)==((void*)((C)->_mapped/*12*/))){
  1680. R=(T0*)C;
  1681. }
  1682. else{
  1683. _m=X54to_runnable((C)->_mapped/*12*/,a1);
  1684. /*[IF*/
  1685. if((_m)==((void*)(NULL))){
  1686. r21add_position((C)->_start_position/*4*/);
  1687. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms275_42042);
  1688. r21fatal_error((T21*)(oBC12eh),b1);
  1689. }/*]*/
  1690. }
  1691. /*FI]*/
  1692. /*[IF*/
  1693. if(((C)->_run_type/*20*/)!=((void*)(NULL))){
  1694. {T275*n=malloc(sizeof(*n));
  1695. *n=M275;
  1696. r275from_other(n,(T0*)C,X54run_type(_m));
  1697. R=(T0*)n;
  1698. }
  1699. }
  1700.  else if(X54is_expanded(_m)){
  1701. C->_run_type=_m;
  1702. C->_run_time_mark=X54run_time_mark(_m);
  1703. R=(T0*)C;
  1704. }
  1705.  else if(((C)->_mapped/*12*/)==((void*)(X54run_type(_m)))){
  1706. C->_run_time_mark=r275compute_mark(X54run_time_mark(_m));
  1707. C->_run_type=(T0*)C;
  1708. R=(T0*)C;
  1709. }
  1710. else{
  1711. C->_run_time_mark=r275compute_mark(X54run_time_mark(_m));
  1712. {T275*n=malloc(sizeof(*n));
  1713. *n=M275;
  1714. r275from_other(n,(T0*)C,X54run_type(_m));
  1715. C->_run_type=(T0*)n;
  1716. }
  1717. R=(T0*)C;
  1718. }
  1719. /*FI]*/
  1720. r24set_at_run_time((T24*)(X54run_class((C)->_mapped/*12*/)));
  1721. r24set_at_run_time((T24*)(X54run_class((((T275*)R))->_run_type/*20*/)));
  1722. }
  1723. /*FI]*/
  1724. return R;
  1725. }
  1726.  
  1727.  
  1728. void r275c_initialize_in(T275* C,T0* a1){
  1729. /*[IF*/
  1730. if(r275is_basic_eiffel_expanded(C)){
  1731. X54c_initialize_in((C)->_run_type/*20*/,a1);
  1732. }
  1733. else{
  1734. /*[IF*/
  1735. if(r275need_c_struct(C)){
  1736. r24c_object_model_in((T24*)(r275run_class(C)),a1);
  1737. }
  1738. else{
  1739. r7extend(((T7*)a1),'0');
  1740. }
  1741. /*FI]*/
  1742. }
  1743. /*FI]*/
  1744. }
  1745. /*No:TYPE_EXPANDED.gc_define1*/
  1746.  
  1747.  
  1748. void r275to_reference(T275* C){
  1749. /*[IF*/
  1750. if(X54is_expanded((C)->_mapped/*12*/)){
  1751. r25to_reference((T25*)(oBC12cpp),(T0*)C,r24to_reference((T24*)(r275run_class(C))));
  1752. }
  1753. else{
  1754. r25to_reference((T25*)(oBC12cpp),(T0*)C,(C)->_mapped/*12*/);
  1755. }
  1756. /*FI]*/
  1757. }
  1758.  
  1759.  
  1760. void r275gc_mark_in(T275* C,T0* a1){
  1761. r7append(((T7*)a1),((T0*)ms13_8869));
  1762. r2append_in(r275id(C),a1);
  1763. }
  1764.  
  1765.  
  1766. T0* r275run_class(T275* C){
  1767. T0* R=NULL;
  1768. R=r22run_class((C)->_run_type/*20*/);
  1769. return R;
  1770. }
  1771. /*No:TYPE_EXPANDED.c_header_pass2*/
  1772. /*No:TYPE_EXPANDED.c_header_pass4*/
  1773. /*No:TYPE_EXPANDED.is_like_current*/
  1774.  
  1775.  
  1776. T6 r275is_bit(T275* C){
  1777. T6 R=0;
  1778. R=X54is_bit((C)->_mapped/*12*/);
  1779. return R;
  1780. }
  1781.  
  1782.  
  1783. T0* r275smallest_ancestor(T275* C,T0* a1){
  1784. T0* R=NULL;
  1785. /*[IF*/
  1786. if(((C)->_run_time_mark/*16*/)==((void*)(X54run_time_mark(a1)))){
  1787. R=(C)->_run_type/*20*/;
  1788. }
  1789. else{
  1790. R=X54run_type(X54smallest_ancestor((C)->_mapped/*12*/,a1));
  1791. }
  1792. /*FI]*/
  1793. return R;
  1794. }
  1795. /*No:TYPE_EXPANDED.fatal_error*/
  1796. /*No:TYPE_EXPANDED.run_time_mark*/
  1797. /*No:TYPE_EXPANDED.is_expanded*/
  1798. /*No:TYPE_EXPANDED.gc_info_in*/
  1799. /*No:TYPE_EXPANDED.gc_define2*/
  1800. /*No:TYPE_EXPANDED.is_like_feature*/
  1801. /*No:TYPE_EXPANDED.fz_dot*/
  1802.  
  1803.  
  1804. T6 r275is_a(T275* C,T0* a1){
  1805. T6 R=0;
  1806. R=X54is_a((C)->_mapped/*12*/,a1);
  1807. /*[IF*/
  1808. if(!(R)){
  1809. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1810. /*]*/
  1811. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1812. /*]*/
  1813. /*]*/
  1814. r21add_type((T0*)C,((T0*)ms13_17730));
  1815. r21add_type(a1,((T0*)ms13_47));
  1816. }
  1817. /*FI]*/
  1818. return R;
  1819. }
  1820. /*No:TYPE_EXPANDED.written_mark*/
  1821.  
  1822.  
  1823. void r275c_initialize(T275* C){
  1824. /*[IF*/
  1825. if(r275is_basic_eiffel_expanded(C)){
  1826. X54c_initialize((C)->_run_type/*20*/);
  1827. }
  1828. else{
  1829. r275c_initialize_expanded(C);
  1830. }
  1831. /*FI]*/
  1832. }
  1833.  
  1834.  
  1835. T6 r275is_character(T275* C){
  1836. T6 R=0;
  1837. R=X54is_character((C)->_mapped/*12*/);
  1838. return R;
  1839. }
  1840. /*No:TYPE_EXPANDED.fz_expanded*/
  1841.  
  1842.  
  1843. void r275make(T275* C,T0* a1,T0* a2){
  1844. C->_start_position=a1;
  1845. C->_mapped=a2;
  1846. C->_written_mark=r275compute_mark(X54written_mark((C)->_mapped/*12*/));
  1847. }
  1848.  
  1849.  
  1850. void r275demangling_in(T275* C,T0* a1){
  1851. /*[IF*/
  1852. /*AF*//*AE*/
  1853. r7extend(((T7*)a1),'E');
  1854. /*FI]*/
  1855. r7extend(((T7*)a1),'\40');
  1856. r7append(((T7*)a1),(C)->_run_time_mark/*16*/);
  1857. }
  1858. /*No:TYPE_EXPANDED.fz_typedef*/
  1859. /*No:TYPE_EXPANDED.is_array*/
  1860. /*No:TYPE_EXPANDED.fz_int*/
  1861. /*No:TYPE_EXPANDED.tmp_string*/
  1862.  
  1863.  
  1864. T6 r275is_dummy_expanded(T275* C){
  1865. T6 R=0;
  1866. /*[IF*/
  1867. if(r275is_user_expanded(C)){
  1868. R=(r24writable_attributes((T24*)(r275run_class(C))))==((void*)(NULL));
  1869. }
  1870. /*FI]*/
  1871. return R;
  1872. }
  1873. /*No:TYPE_EXPANDED.space_for_variable*/
  1874. /*No:TYPE_EXPANDED.to_expanded*/
  1875.  
  1876.  
  1877. T0* r275generic_list(T275* C){
  1878. T0* R=NULL;
  1879. R=X54generic_list((C)->_mapped/*12*/);
  1880. return R;
  1881. }
  1882.  
  1883.  
  1884. T0* r275base_class(T275* C){
  1885. T0* R=NULL;
  1886. T0* _bcn=NULL;
  1887. _bcn=r275base_class_name(C);
  1888. /*[IF*/
  1889. if((_bcn)!=((void*)(NULL))){
  1890. R=r64base_class(((T64*)_bcn));
  1891. }
  1892. else{
  1893. /*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
  1894. r7append((T7*)(oBC21explanation),b1);
  1895. }/*]*/
  1896. r21add_type((T0*)C,((T0*)ms13_47));
  1897. r21print_as_fatal_error((T21*)(oBC12eh));
  1898. }
  1899. /*FI]*/
  1900. return R;
  1901. }
  1902.  
  1903.  
  1904. void r275cast_to_ref(T275* C){
  1905. X54cast_to_ref((C)->_run_type/*20*/);
  1906. }
  1907. /*No:TYPE_EXPANDED.fz_se_cmpt*/
  1908.  
  1909.  
  1910. T0* r275base_class_name(T275* C){
  1911. T0* R=NULL;
  1912. R=X54base_class_name((C)->_mapped/*12*/);
  1913. return R;
  1914. }
  1915. /*No:TYPE_EXPANDED.is_formal_generic*/
  1916.  
  1917.  
  1918. T6 r275is_a_in(T275* C,T0* a1,T0* a2){
  1919. T6 R=0;
  1920. T0* _ct=NULL;
  1921. T0* _t2=NULL;
  1922. T0* _t1=NULL;
  1923. /*[IF*/
  1924. if(((C)->_written_mark/*8*/)==((void*)(X54written_mark(a1)))){
  1925. R=1;
  1926. }
  1927. else{
  1928. _ct=(((T24*)a2))->_current_type/*0*/;
  1929. _t1=r275to_runnable(C,_ct);
  1930. _t2=X54to_runnable(a1,_ct);
  1931. /*[IF*/
  1932. if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
  1933. R=1;
  1934. }
  1935. else{
  1936. R=X54is_a(_t1,_t2);
  1937. }
  1938. /*FI]*/
  1939. }
  1940. /*FI]*/
  1941. return R;
  1942. }
  1943. /*No:TYPE_EXPANDED.body*/
  1944.  
  1945.  
  1946. T0* r275look_up_for(T275* C,T0* a1,T0* a2){
  1947. T0* R=NULL;
  1948. R=r63look_up_for((T63*)(r275base_class(C)),a1,a2);
  1949. return R;
  1950. }
  1951. /*No:TYPE_EXPANDED.fz_00*/
  1952.  
  1953.  
  1954. void r275c_type_for_external_in(T275* C,T0* a1){
  1955. /*[IF*/
  1956. /*AF*//*AE*/
  1957. r275c_type_for_result_in(C,a1);
  1958. /*FI]*/
  1959. }
  1960.  
  1961.  
  1962. void r275c_type_for_argument_in(T275* C,T0* a1){
  1963. /*[IF*/
  1964. if(X54is_expanded((C)->_mapped/*12*/)){
  1965. X54c_type_for_argument_in((C)->_mapped/*12*/,a1);
  1966. }
  1967.  else if(r275is_dummy_expanded(C)){
  1968. r7append(((T7*)a1),((T0*)ms13_1011));
  1969. }
  1970. else{
  1971. r7extend(((T7*)a1),'T');
  1972. r2append_in(r275id(C),a1);
  1973. r7extend(((T7*)a1),'\52');
  1974. }
  1975. /*FI]*/
  1976. }
  1977. /*No:TYPE_EXPANDED.c_header_pass1*/
  1978.  
  1979.  
  1980. void r275c_type_for_target_in(T275* C,T0* a1){
  1981. /*[IF*/
  1982. if(r275is_dummy_expanded(C)){
  1983. r7append(((T7*)a1),((T0*)ms13_1011));
  1984. }
  1985. else{
  1986. r7extend(((T7*)a1),'T');
  1987. r2append_in(r275id(C),a1);
  1988. r7extend(((T7*)a1),'\52');
  1989. }
  1990. /*FI]*/
  1991. }
  1992.  
  1993.  
  1994. void r275c_type_for_result_in(T275* C,T0* a1){
  1995. /*[IF*/
  1996. if(r275is_dummy_expanded(C)){
  1997. r7append(((T7*)a1),((T0*)ms13_1011));
  1998. }
  1999. else{
  2000. r7extend(((T7*)a1),'T');
  2001. r2append_in(r275id(C),a1);
  2002. }
  2003. /*FI]*/
  2004. }
  2005. /*No:TYPE_EXPANDED.run_type*/
  2006.  
  2007.  
  2008. T0* r275expanded_initializer(T275* C){
  2009. T0* R=NULL;
  2010. R=r63expanded_initializer((T63*)(r275base_class(C)),(T0*)C);
  2011. return R;
  2012. }
  2013.  
  2014.  
  2015. void r275c_frame_descriptor(T275* C){
  2016. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  2017. /*[IF*/
  2018. /*AF*//*AE*/
  2019. r7extend((T7*)(oBC12c_frame_descriptor_format),'E');
  2020. /*FI]*/
  2021. r2append_in(r275id(C),oBC12c_frame_descriptor_format);
  2022. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  2023. }
  2024.  
  2025.  
  2026. T6 r275has_creation(T275* C,T0* a1){
  2027. T6 R=0;
  2028. R=r63has_creation((T63*)(r275base_class(C)),a1);
  2029. return R;
  2030. }
  2031.  
  2032.  
  2033. T2 r275space_for_integer(void){
  2034. T2 R=0;
  2035. R=sizeof(T2);
  2036. return R;
  2037. }
  2038.  
  2039.  
  2040. void r275c_header_pass3(T275* C){
  2041. /*[IF*/
  2042. if(r275need_c_struct(C)){
  2043. /*[IF*/
  2044. if(((C)->_run_type/*20*/)==((void*)(C))){
  2045. r275standard_c_struct(C);
  2046. }
  2047. else{
  2048. X54c_header_pass3((C)->_run_type/*20*/);
  2049. }
  2050. /*FI]*/
  2051. r275standard_c_object_model(C);
  2052. }
  2053. /*FI]*/
  2054. }
  2055.  
  2056.  
  2057. void r275gc_call_new_in(T275* C,T0* a1){
  2058. r7append(((T7*)a1),((T0*)ms13_1008));
  2059. r2append_in(r275id(C),a1);
  2060. r7extend(((T7*)a1),'\50');
  2061. r7extend(((T7*)a1),'\51');
  2062. }
  2063. /*No:TYPE_EXPANDED.fz_new*/
  2064.  
  2065.  
  2066. T6 r275is_boolean(T275* C){
  2067. T6 R=0;
  2068. R=X54is_boolean((C)->_mapped/*12*/);
  2069. return R;
  2070. }
  2071.  
  2072.  
  2073. void r275mapping_cast(T275* C){
  2074. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_15696)))))->_count)=(0);
  2075. /*]*/
  2076. r7extend((T7*)(((T0*)ms54_15696)),'\50');
  2077. r275c_type_for_target_in(C,((T0*)ms54_15696));
  2078. r7extend((T7*)(((T0*)ms54_15696)),'\51');
  2079. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_15696));
  2080. /*]*/
  2081. }
  2082.  
  2083.  
  2084. T6 r275is_generic(T275* C){
  2085. T6 R=0;
  2086. R=X54is_generic((C)->_mapped/*12*/);
  2087. return R;
  2088. }
  2089. /*No:TYPE_EXPANDED.fz_struct*/
  2090.  
  2091.  
  2092. T6 r275is_real(T275* C){
  2093. T6 R=0;
  2094. R=X54is_real((C)->_mapped/*12*/);
  2095. return R;
  2096. }
  2097.  
  2098.  
  2099. T0* r275compute_mark(T0* a1){
  2100. T0* R=NULL;
  2101. r7copy((T7*)(oBC275tmp_written_mark),((T0*)ms13_10840));
  2102. r7extend((T7*)(oBC275tmp_written_mark),'\40');
  2103. r7append((T7*)(oBC275tmp_written_mark),a1);
  2104. R=r84item(oBC275tmp_written_mark);
  2105. return R;
  2106. }
  2107.  
  2108.  
  2109. T6 r275need_c_struct(T275* C){
  2110. T6 R=0;
  2111. /*[IF*/
  2112. if(X54is_expanded((C)->_mapped/*12*/)){
  2113. R=X54need_c_struct((C)->_mapped/*12*/);
  2114. }
  2115. else{
  2116. R=(r24writable_attributes((T24*)(r275run_class(C))))!=((void*)(NULL));
  2117. }
  2118. /*FI]*/
  2119. return R;
  2120. }
  2121. /*No:TYPE_EXPANDED.is_any*/
  2122.  
  2123.  
  2124. void r275standard_gc_define2_for_expanded(T275* C){
  2125. T2 _rcid=0;
  2126. T0* _rc=NULL;
  2127. _rc=r275run_class(C);
  2128. /*[IF*/
  2129. if(r24gc_mark_to_follow(((T24*)_rc))){
  2130. _rcid=(((T24*)_rc))->_id/*4*/;
  2131. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
  2132. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  2133. r275gc_mark_in(C,((T0*)ms54_785024a));
  2134. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_254aa));
  2135. r2append_in(_rcid,((T0*)ms54_785024a));
  2136. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_600a));
  2137. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
  2138. /*]*/
  2139. r24gc_mark_fixed_size(((T24*)_rc),1,((T0*)ms54_3077376));
  2140. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  2141. }
  2142. /*FI]*/
  2143. }
  2144.  
  2145.  
  2146. void r275c_initialize_expanded(T275* C){
  2147. T0* _rf=NULL;
  2148. T2 _i=0;
  2149. T0* _wa=NULL;
  2150. /*[IF*/
  2151. if(r275is_dummy_expanded(C)){
  2152. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2153. T3 b1='0';
  2154. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2155. }/*]*/
  2156. /*]*/
  2157. }
  2158. else{
  2159. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2160. T3 b1='\173';
  2161. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2162. }/*]*/
  2163. /*]*/
  2164. _wa=r24writable_attributes((T24*)(r275run_class(C)));
  2165. _i=(((T361*)_wa))->_upper/*12*/;
  2166. while (!((_i)==(0))) {
  2167. _rf=r361item(((T361*)_wa),_i);
  2168. X54c_initialize((((T356*)_rf))->_result_type/*28*/);
  2169. _i=(_i)-(1);
  2170. /*[IF*/
  2171. if((_i)>(0)){
  2172. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2173. T3 b1='\54';
  2174. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2175. }/*]*/
  2176. /*]*/
  2177. }
  2178. /*FI]*/
  2179. }
  2180. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  2181. T3 b1='\175';
  2182. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  2183. }/*]*/
  2184. /*]*/
  2185. }
  2186. /*FI]*/
  2187. }
  2188. /*No:TYPE_EXPANDED.header*/
  2189.  
  2190.  
  2191. void r275standard_c_struct(T275* C){
  2192. T0* _t=NULL;
  2193. T0* _a=NULL;
  2194. T2 _mem_id=0;
  2195. T2 _i=0;
  2196. T0* _wa=NULL;
  2197. _mem_id=r275id(C);
  2198. _wa=r24writable_attributes((T24*)(r275run_class(C)));
  2199. r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
  2200. r7extend((T7*)(((T0*)ms54_785024)),'S');
  2201. r2append_in(_mem_id,((T0*)ms54_785024));
  2202. r7extend((T7*)(((T0*)ms54_785024)),'\173');
  2203. /*[IF*/
  2204. /*AF*//*AE*/
  2205. /*FI]*/
  2206. /*[IF*/
  2207. if((_wa)!=((void*)(NULL))){
  2208. _i=(((T361*)_wa))->_upper/*12*/;
  2209. while (!((_i)==(0))) {
  2210. _a=r361item(((T361*)_wa),_i);
  2211. _t=X54run_type((((T356*)_a))->_result_type/*28*/);
  2212. X54c_type_for_result_in(_t,((T0*)ms54_785024));
  2213. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  2214. r7extend((T7*)(((T0*)ms54_785024)),'\137');
  2215. r7append((T7*)(((T0*)ms54_785024)),X83to_string((((T356*)_a))->_name/*16*/));
  2216. r7extend((T7*)(((T0*)ms54_785024)),'\73');
  2217. _i=(_i)-(1);
  2218. }
  2219. }
  2220. /*FI]*/
  2221. r7extend((T7*)(((T0*)ms54_785024)),'\175');
  2222. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  2223. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  2224. /*]*/
  2225. /*[IF*/
  2226. {/*AT*/r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_1011));
  2227. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  2228. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_7854));
  2229. r2append_in(_mem_id,((T0*)ms54_785024));
  2230. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_254));
  2231. r2append_in(_mem_id,((T0*)ms54_785024));
  2232. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_1675));
  2233. r2append_in(_mem_id,((T0*)ms54_785024));
  2234. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_976));
  2235. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024),((T0*)ms54_87822));
  2236. }
  2237. /*FI]*/
  2238. }
  2239.  
  2240.  
  2241. T2 r275standard_space_for_object(T275* C){
  2242. T2 R=0;
  2243. T2 _i=0;
  2244. T0* _a=NULL;
  2245. T0* _wa=NULL;
  2246. T0* _rc=NULL;
  2247. _rc=r275run_class(C);
  2248. /*[IF*/
  2249. if(r24is_tagged(((T24*)_rc))){
  2250. R=r275space_for_integer();
  2251. }
  2252. /*FI]*/
  2253. _wa=r24writable_attributes(((T24*)_rc));
  2254. /*[IF*/
  2255. if((_wa)!=((void*)(NULL))){
  2256. _i=(((T361*)_wa))->_upper/*12*/;
  2257. while (!((_i)==(0))) {
  2258. _a=r361item(((T361*)_wa),_i);
  2259. R=(R)+(X54space_for_variable((((T356*)_a))->_result_type/*28*/));
  2260. _i=(_i)-(1);
  2261. }
  2262. }
  2263. /*FI]*/
  2264. /*[IF*/
  2265. if((R)==(0)){
  2266. R=r275space_for_integer();
  2267. }
  2268. /*FI]*/
  2269. return R;
  2270. }
  2271.  
  2272.  
  2273. T6 r275is_basic_eiffel_expanded(T275* C){
  2274. T6 R=0;
  2275. /*[IF*/
  2276. if(((C)->_run_type/*20*/)==((void*)((C)->_mapped/*12*/))){
  2277. R=X54is_basic_eiffel_expanded((C)->_mapped/*12*/);
  2278. }
  2279. /*FI]*/
  2280. return R;
  2281. }
  2282. /*No:TYPE_EXPANDED.fz_gc_mark*/
  2283.  
  2284.  
  2285. T6 r275need_gc_mark_function(T275* C){
  2286. T6 R=0;
  2287. R=r24gc_mark_to_follow((T24*)(r275run_class(C)));
  2288. return R;
  2289. }
  2290.  
  2291.  
  2292. T6 r275is_native_array(T275* C){
  2293. T6 R=0;
  2294. T0* _tna=NULL;
  2295. _tna=(T0*)C;
  2296. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  2297. case 263: 
  2298. break;
  2299. default:
  2300. _tna=NULL;
  2301. };R=(_tna)!=((void*)(NULL));
  2302. return R;
  2303. }
  2304. /*No:TYPE_EXPANDED.is_string*/
  2305.  
  2306.  
  2307. T6 r275is_integer(T275* C){
  2308. T6 R=0;
  2309. R=X54is_integer((C)->_mapped/*12*/);
  2310. return R;
  2311. }
  2312. /*No:TYPE_EXPANDED.is_anchored*/
  2313. /*No:TYPE_EXPANDED.is_run_type*/
  2314.  
  2315.  
  2316. void r275standard_c_object_model(T275* C){
  2317. T0* _rc=NULL;
  2318. T2 _mem_id=0;
  2319. _rc=r275run_class(C);
  2320. _mem_id=(((T24*)_rc))->_id/*4*/;
  2321. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  2322. /*]*/
  2323. r7extend((T7*)(((T0*)ms54_785024)),'T');
  2324. r2append_in(_mem_id,((T0*)ms54_785024));
  2325. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  2326. r7extend((T7*)(((T0*)ms54_785024)),'M');
  2327. r2append_in(_mem_id,((T0*)ms54_785024));
  2328. r25put_extern7((T25*)(oBC12cpp),((T0*)ms54_785024));
  2329. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  2330. /*]*/
  2331. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  2332. /*]*/
  2333. r24c_object_model_in(((T24*)_rc),((T0*)ms54_785024));
  2334. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  2335. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  2336. /*]*/
  2337. r25swap_on_h((T25*)(oBC12cpp));
  2338. }
  2339.  
  2340.  
  2341. void r275from_other(T275* C,T0* a1,T0* a2){
  2342. C->_start_position=(((T275*)a1))->_start_position/*4*/;
  2343. C->_written_mark=(((T275*)a1))->_written_mark/*8*/;
  2344. C->_mapped=a2;
  2345. /*[IF*/
  2346. if(X54is_expanded((C)->_mapped/*12*/)){
  2347. C->_run_time_mark=X54run_time_mark((C)->_mapped/*12*/);
  2348. C->_run_type=(C)->_mapped/*12*/;
  2349. }
  2350. else{
  2351. C->_run_time_mark=r275compute_mark(X54run_time_mark((C)->_mapped/*12*/));
  2352. C->_run_type=(T0*)C;
  2353. }
  2354. /*FI]*/
  2355. }
  2356. /*No:TYPE_EXPANDED.mapped*/
  2357. /*No:TYPE_EXPANDED.is_reference*/
  2358. T0*oBC275tmp_written_mark=NULL;
  2359. /*No:TYPE_EXPANDED.is_none*/
  2360. /*No:TYPE_EXPANDED.fz_inako*/
  2361. /*No:TYPE_EXPANDED.is_like_argument*/
  2362. /*No:TYPE_EXPANDED.just_before_gc_mark_in*/
  2363. /*No:TYPE_EXPANDED.mapping_cast_memory*/
  2364.  
  2365.  
  2366. T6 r275is_double(T275* C){
  2367. T6 R=0;
  2368. R=X54is_double((C)->_mapped/*12*/);
  2369. return R;
  2370. }
  2371.  
  2372.  
  2373. void r275standard_c_typedef(T275* C){
  2374. T2 _mem_id=0;
  2375. _mem_id=r275id(C);
  2376. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  2377. /*]*/
  2378. /*[IF*/
  2379. if(r275need_c_struct(C)){
  2380. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
  2381. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
  2382. r7extend((T7*)(((T0*)ms54_785024)),'S');
  2383. r2append_in(_mem_id,((T0*)ms54_785024));
  2384. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  2385. r7extend((T7*)(((T0*)ms54_785024)),'T');
  2386. r2append_in(_mem_id,((T0*)ms54_785024));
  2387. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  2388. }
  2389.  else if(r275is_dummy_expanded(C)){
  2390. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
  2391. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_1011));
  2392. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  2393. r7extend((T7*)(((T0*)ms54_785024)),'T');
  2394. r2append_in(_mem_id,((T0*)ms54_785024));
  2395. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  2396. }
  2397. /*AF*//*FI]*/
  2398. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  2399. /*]*/
  2400. }
  2401.  
  2402.  
  2403. T2 r145static_value(T145* C){
  2404. T2 R=0;
  2405. /*[IF*/
  2406. if(X54is_boolean(X56result_type((C)->_target/*4*/))){
  2407. /*[IF*/
  2408. if(X56is_static((C)->_target/*4*/)){
  2409. /*[IF*/
  2410. if((X56static_value((C)->_target/*4*/))==(0)){
  2411. R=1;
  2412. }
  2413. /*FI]*/
  2414. }
  2415. /*FI]*/
  2416. }
  2417. /*FI]*/
  2418. return R;
  2419. }
  2420. /*No:CALL_PREFIX_NOT.call_proc_call_c2c*/
  2421. /*No:CALL_PREFIX_NOT.feature_name*/
  2422.  
  2423.  
  2424. void r145finalize(T145* C){
  2425. T0* _rf=NULL;
  2426. T0* _rc=NULL;
  2427. _rf=(C)->_run_feature/*8*/;
  2428. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  2429. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  2430. }
  2431.  
  2432.  
  2433. T6 r145is_static(T145* C){
  2434. T6 R=0;
  2435. /*[IF*/
  2436. if(X54is_boolean(X56result_type((C)->_target/*4*/))){
  2437. /*[IF*/
  2438. if(X56is_static((C)->_target/*4*/)){
  2439. R=1;
  2440. }
  2441. /*FI]*/
  2442. }
  2443. /*FI]*/
  2444. return R;
  2445. }
  2446. /*No:CALL_PREFIX_NOT.is_manifest_string*/
  2447.  
  2448.  
  2449. T0* r145start_position(T145* C){
  2450. T0* R=NULL;
  2451. R=((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  2452. return R;
  2453. }
  2454. /*No:CALL_PREFIX_NOT.c_simple*/
  2455.  
  2456.  
  2457. T0* r145add_comment(T145* C,T0* a1){
  2458. T0* R=NULL;
  2459. /*[IF*/
  2460. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  2461. R=(T0*)C;
  2462. }
  2463. else{
  2464. {T230*n=malloc(sizeof(*n));
  2465. *n=M230;
  2466. r230make(n,(T0*)C,a1);
  2467. R=(T0*)n;
  2468. }
  2469. }
  2470. /*FI]*/
  2471. return R;
  2472. }
  2473.  
  2474.  
  2475. T2 r145to_integer(T145* C){
  2476. T2 R=0;
  2477. T0* _rf1=NULL;
  2478. _rf1=(C)->_run_feature/*8*/;
  2479. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  2480. case 376: 
  2481. break;
  2482. default:
  2483. _rf1=NULL;
  2484. };/*[IF*/
  2485. if((_rf1)==((void*)(NULL))){
  2486. r145error(r145start_position(C),((T0*)ms13_45846));
  2487. }
  2488. else{
  2489. R=X56to_integer((((T376*)_rf1))->_value/*36*/);
  2490. }
  2491. /*FI]*/
  2492. return R;
  2493. }
  2494.  
  2495.  
  2496. T6 r145use_current(T145* C){
  2497. T6 R=0;
  2498. /*[IF*/
  2499. /*AF*//*AE*/
  2500. /*FI]*/
  2501. /*[IF*/
  2502. if(R){
  2503. }
  2504.  else if(X56is_current((C)->_target/*4*/)){
  2505. R=X51use_current((C)->_run_feature/*8*/);
  2506. }
  2507. else{
  2508. R=X56use_current((C)->_target/*4*/);
  2509. }
  2510. /*FI]*/
  2511. return R;
  2512. }
  2513.  
  2514.  
  2515. T0* r145to_runnable(T145* C,T0* a1){
  2516. T0* R=NULL;
  2517. T0* _rf=NULL;
  2518. T0* _t=NULL;
  2519. _t=r145runnable_expression((C)->_target/*4*/,a1);
  2520. _rf=r145run_feature_for(C,_t,a1);
  2521. /*[IF*/
  2522. if(((C)->_run_feature/*8*/)==((void*)(NULL))){
  2523. C->_target=_t;
  2524. C->_run_feature=_rf;
  2525. r145run_feature_match(C);
  2526. R=(T0*)C;
  2527. }
  2528.  else if((_t)==((void*)((C)->_target/*4*/))){
  2529. R=(T0*)C;
  2530. }
  2531. else{
  2532. {T145*n=malloc(sizeof(*n));
  2533. *n=M145;
  2534. r145with(n,_t,(C)->_feature_name/*12*/,_rf);
  2535. R=(T0*)n;
  2536. }
  2537. }
  2538. /*FI]*/
  2539. return R;
  2540. }
  2541.  
  2542.  
  2543. void r145compile_to_c_old(T145* C){
  2544. X56compile_to_c_old((C)->_target/*4*/);
  2545. /*[IF*/
  2546. /*AF*//*AE*/
  2547. /*FI]*/
  2548. }
  2549. /*No:CALL_PREFIX_NOT.is_pre_computable*/
  2550.  
  2551.  
  2552. void r145collect_c_tmp(T145* C){
  2553. /*[IF*/
  2554. if(((C)->_run_feature/*8*/)!=((void*)(NULL))){
  2555. X51collect_c_tmp((C)->_run_feature/*8*/);
  2556. }
  2557. /*FI]*/
  2558. X56collect_c_tmp((C)->_target/*4*/);
  2559. /*[IF*/
  2560. /*AF*//*AE*/
  2561. /*FI]*/
  2562. }
  2563. /*No:CALL_PREFIX_NOT.fz_iinaiv*/
  2564.  
  2565.